//配置axios的基础路径
axios.defaults.baseURL = "http://localhost:8080/";
//配置Vue的全局属性:用来获取axios对象
Vue.prototype.$http = axios;

//=============================axios前置拦截器【拦截调用后端的请求】=============================//
//所有的axios请求都经过，携带token给请求头
axios.interceptors.request.use(res=>{
    //获取localStorage的token
    let token = localStorage.getItem("token");
    //判断是否为空
    if(token){
        //不为空设置到请求头
        res.headers["token"] = token;
    }
    return res;
},error => {
    Promise.reject(error)
})
//=============================axios前置拦截器=============================//



//=============================axios后置拦截器【处理后台登录拦截的结果】=============================//
axios.interceptors.response.use(res=>{
    if (res.data.success === false && res.data.message === "noLogin") { //没有登录或者过了30分钟
        //清空localStorage
        localStorage.removeItem("token");
        localStorage.removeItem("logininfo");
        //跳转到门户网站首页 - login.html
        location.href = "/login.html";
    }
    return res;
},error => {
    Promise.reject(error)
})
//=============================axios后置拦截器=============================//



//=============================静态资源拦截器=============================//
var url = location.href;
//既不是访问的登录页面，也不是访问的注册页面，就要拦截，跳转到登录页面
if (url.indexOf("/login.html") == -1 && url.indexOf("/register.html") == -1
    && url.indexOf("/index.html") == -1 && url.indexOf("/callback.html") == -1
    && url.indexOf("/binder.html") == -1
) {
    //也没有登录过或者过期了
    var logininfo = localStorage.getItem("logininfo");
    if (!logininfo) {
        location.href = "/login.html";
    }

}


//将地址栏？后面的参数装成json对象 - 以后这样的需求很多
function param2JsonObj(url){
    //截取？后面的参数
    var params = url.substring(url.indexOf("?")+1);
    //按照&进行分割 - 获取每一对参数
    var paraArr = params.split("&");//[code=0314GMkl225Gj94lpBnl2BpYxh14GMk6,state=STATE]
    var obj = {};
    for(var i = 0;i<paraArr.length;i++){
        //获取单个参数
        var para = paraArr[i];
        //获取参数名
        var parakey = para.split("=")[0];
        //获取参数值
        var paraValue = para.split("=")[1];
        obj[parakey] = paraValue;
    }
    return obj;
}
